#ifndef _STAR_
#define _STAR_ 1

#include <windows.h>
#include "../core/core_include/api.h"
#include "../core/core_include/rect.h"
#include "../core/core_include/resource.h"
#include "../core/core_include/surface.h"
#include "../core/core_include/display.h"

#define UI_WIDTH 640
#define UI_HEIGHT 480
#define UI_STAR_SIZE 100

class c_star {
 public:
  c_star();
  void initialize();
  void move(c_surface *surface);

 private:
  int m_start_x, m_start_y;
  float m_x, m_y, m_x_factor, m_y_factor, m_size_factor, m_size;
};

class c_particle {
 public:
  c_particle(void (*draw_pixel)(int x, int y, unsigned int rgb),
             void (*fill_rect)(int x0, int y0, int x1, int y1,
                               unsigned int rgb));
  ~c_particle();
  void draw();

 private:
  EXTERNAL_GFX_OP m_op;
  c_surface *m_surface;
  DWORD m_lastDrawMillis;
  c_star *m_stars;
};

#endif